#ifndef ANALEX_H
#define ANALEX_H

#include <stdlib.h>
#include <stdio.h>
#include "pile.h"
#include "symbole.h"
#include "pcode.h"

/*Variables externes*/
extern FILE *f;            		/*Pointeur sur le fichier Pascal*/
extern FILE *lst;	   		/*Pointeur sur le fichier listening*/
extern FILE *yyin;         		/*Entrée standard*/
extern FILE *appel;	   		/*Pointeur sur le fichier appel*/
extern FILE *postFix;	   		/*Pointeur sur le fichier postfix*/
extern FILE *fpcode;			/*Pointeur sur le fichier pcode*/
extern int u_type;         		/*Contient le numéro du type*/
extern char u_lex[256];   		/*Contient le texte du type*/
extern int line;	   		/*Compteur de ligne dans le fichier pascal*/
extern struct liste *tableSymbole;	/*La table des symbôles*/
extern struct pile *pCompilation;	/*Pile de compilation*/
extern struct pcode *p_code;		/*Enregistrement du pcode*/
extern struct save_func *sav;		/*Sauvegarde des n° de début de ligne d'une fonction*/

/*Analyse lexciale*/
#define CONST_ENTIERE      1
#define CONST_REELLE       2
#define CONST_BOOLEENNE    3
#define CONST_CHAINE       4
#define CONST_COMMENTAIRE  5
#define IDENTIFICATEUR     6
#define OPER_ARITHMETIQUE  7     /*+-* / */
#define OPER_LOGIQUE       8     /*<= < >= <> >=*/
#define AFFECTATION        9     /*:=*/
#define INTERVAL           10    /*..*/
#define SEPARATEUR         11    /*.,;()[]*/
#define CONST_CONDITION    12
#define CONST_CARACTERE	   13

#endif
